package com.tudouji.project.bill.service;

import java.util.List;
import com.tudouji.project.bill.domain.AutoTransfer;

/**
 * 自动调拨Service接口
 * 
 * @author tudouji
 * @date 2023-08-30
 */
public interface IAutoTransferService 
{
    /**
     * 查询自动调拨
     * 
     * @param id 自动调拨ID
     * @return 自动调拨
     */
    public AutoTransfer selectAutoTransferById(Long id);

    /**
     * 查询自动调拨列表
     * 
     * @param autoTransfer 自动调拨
     * @return 自动调拨集合
     */
    public List<AutoTransfer> selectAutoTransferList(AutoTransfer autoTransfer);

    /**
     * 查询到当前采收组织（调出组织）入库库房（调出库房）所对应的地头直销目标库，逻辑是：
     *     找到调出组织、调出库房对应的auto_transfer记录 A，找到A的下一条记录（A.sort+1)
     *     B，如果A的调入组织、调入库房=B的调出组织、调出库房，则B匹配成功，返回B
     *
     * @param autoTransfer
     * @return
     */
    public AutoTransfer findDestAutoTransfer(AutoTransfer autoTransfer);

    public AutoTransfer findAutoTransfer(AutoTransfer autoTransfer);
    /**
     * 新增自动调拨
     * 
     * @param autoTransfer 自动调拨
     * @return 结果
     */
    public int insertAutoTransfer(AutoTransfer autoTransfer);

    /**
     * 修改自动调拨
     * 
     * @param autoTransfer 自动调拨
     * @return 结果
     */
    public int updateAutoTransfer(AutoTransfer autoTransfer);

    /**
     * 批量删除自动调拨
     * 
     * @param ids 需要删除的自动调拨ID
     * @return 结果
     */
    public int deleteAutoTransferByIds(Long[] ids);

    /**
     * 删除自动调拨信息
     * 
     * @param id 自动调拨ID
     * @return 结果
     */
    public int deleteAutoTransferById(Long id);

}
